package com.hmall.search.service;

import com.hmall.common.dto.Item;
import com.hmall.common.dto.ItemDoc;
import com.hmall.common.dto.PageDTO;
import com.hmall.common.vo.RequestParams;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;


/**
 * @author zhang
 * @date 2022/06/12
 */
public interface SearchService {
    /**
     * 获取商品分页集合
     */
    PageDTO<Item> getItems(Integer page, Integer size);

    /**
     * 自动补全
     *
     * @param key 前端传入的参数
     * @return {@link List}<{@link String}>
     */
    List<String> autoSearch(String key);

    /**
     * 过滤聚合
     *
     * @param params 传入的参数
     * @return {@link Map}<{@link String}, {@link List}<{@link String}>>
     */
    Map<String, List<String>> getFilters(RequestParams params);

    /**
     * 查询列表
     *
     * @param params 前端传入的参数
     * @return {@link PageDTO}<{@link ItemDoc}>
     */
    PageDTO<ItemDoc> searchList(RequestParams params);

    /**
     * 数据同步删除
     * @param id 商品ID
     */
    void deleteById(Long id);

    /**
     * 数据同步新增
     * @param id 商品ID
     */
    void insertById(Long id);
}
